package com.priox.sigar.client.dto;

/**
 * User: Matrix
 * Date: 19/01/13
 */
public class ClienteSociedadDTO extends AuditoriaDTO{

    private String sociedadId;
    private String clienteId;
    private SociedadDTO sociedad;
    private ClienteDTO cliente;
    private Integer relacionado=0;
    private Boolean relacionadoBl;
    private Long grupoEmpresarialId;
    private String grupoEmpresarialNombre;
    private String sociedadNombre;


    public Boolean getRelacionadoBl() {
        relacionadoBl=relacionado==1?Boolean.TRUE:Boolean.FALSE;
        return relacionadoBl;
    }

    public void setRelacionadoBl(Boolean relacionadoBl) {
        this.relacionadoBl = relacionadoBl;
        relacionado=relacionadoBl?1:0;
    }

    public String getSociedadId() {
        return sociedadId;
    }

    public void setSociedadId(String sociedadId) {
        this.sociedadId = sociedadId;
    }

    public String getClienteId() {
        return clienteId;
    }

    public void setClienteId(String clienteId) {
        this.clienteId = clienteId;
    }

    public SociedadDTO getSociedad() {
        if(sociedad==null){
            sociedad=new SociedadDTO();
            sociedad.setNombre(sociedadNombre);
            sociedad.setSociedadId(sociedadId);
            GrupoEmpresarialDTO grupoEmpresarial= new GrupoEmpresarialDTO();
            grupoEmpresarial.setGrupoEmpresarialId(grupoEmpresarialId);
            grupoEmpresarial.setNombre(grupoEmpresarialNombre);
            sociedad.setGrupoEmpresarial(grupoEmpresarial);
        }
        return sociedad;
    }

    public void setSociedad(SociedadDTO sociedad) {
        this.sociedad = sociedad;
        this.sociedadId=sociedad.getSociedadId();
    }

    public ClienteDTO getCliente() {
        return cliente;
    }

    public void setCliente(ClienteDTO cliente) {
        this.cliente = cliente;
        this.clienteId=cliente.getClienteId();
    }

    public int getRelacionado() {
        return relacionado;
    }

    public void setRelacionado(int relacionado) {
        this.relacionado = relacionado;
    }

    public Long getGrupoEmpresarialId() {
        return grupoEmpresarialId;
    }

    public void setGrupoEmpresarialId(Long grupoEmpresarialId) {
        this.grupoEmpresarialId = grupoEmpresarialId;
    }

    public String getGrupoEmpresarialNombre() {
        return grupoEmpresarialNombre;
    }

    public void setGrupoEmpresarialNombre(String grupoEmpresarialNombre) {
        this.grupoEmpresarialNombre = grupoEmpresarialNombre;
    }

    public String getSociedadNombre() {
        return sociedadNombre;
    }

    public void setSociedadNombre(String sociedadNombre) {
        this.sociedadNombre = sociedadNombre;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        ClienteSociedadDTO that = (ClienteSociedadDTO) o;

        if (!clienteId.equals(that.clienteId)) return false;
        if (!sociedadId.equals(that.sociedadId)) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = sociedadId.hashCode();
        result = 31 * result + clienteId.hashCode();
        return result;
    }

    public void setRelacionado(Integer relacionado) {
        this.relacionado = relacionado;
    }
}
